﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DAplicaciones1;

  
namespace interfaz
{
    public partial class FormTiemposEntrega : Form
    {
        private Sistema sistema;
        private Tiempo time;

        public FormTiemposEntrega()
        {
            InitializeComponent();
            sistema = Sistema.GetSistema();            
            actualizarListaTiempos();
        }


        #region Eventos

        private void btnCrear_Click(object sender, EventArgs e)
        {
            try
            {              
                lblError.Text = "";
                sistema.crearTiempoEntrega(txtDias.Text, txtPrecio.Text);
                limpiarCajas();
                actualizarListaTiempos();
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }
        }


        private void btnModificar_Click(object sender, EventArgs e)
        {
            try
            {
                lblError.Text = "";
                if (btnActualizar.Tag.Equals("Modificar"))
                {
                    sistema.modificarTiempoEntrega(txtDias.Text, txtPrecio.Text);
                }
                actualizarListaTiempos();
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                if (lstTiempos.SelectedItem != null)
                {
                    lblError.Text = "";
                    sistema.eliminarTiempoEntrega(Convert.ToInt32(lstTiempos.SelectedItem));                    
                    actualizarListaTiempos();
                    limpiarCajas();
                    txtDias.ReadOnly = false;
                    btnActualizar.Visible = false;
                    btnCrear.Visible = true;
                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }

        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            FormMenu menu = new FormMenu();
            this.Visible = false;
            menu.ShowDialog();
            
        }

        private void lstTiempos_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (lstTiempos.SelectedItem != null)
                {
                    lblError.Text = "";
                    time = sistema.retornarTiempoEntrega(Convert.ToInt16(lstTiempos.SelectedItem));
                    txtDias.Text = time.Dias.ToString();
                    txtPrecio.Text = time.Precio.ToString();
                    txtDias.ReadOnly = true;
                    btnActualizar.Visible = true;
                    btnCrear.Visible = false;
                    btnCancelar.Visible = true;
                }
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
                lblError.ForeColor = Color.Red;
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            limpiarCajas();
            btnActualizar.Visible = false;
            btnCrear.Visible = true;
            txtDias.ReadOnly = false;
            btnCancelar.Visible = false;
        }

        #endregion Eventos

        #region Métodos

        private void actualizarListaTiempos()
        {
            lstTiempos.Items.Clear();
            foreach (Tiempo tiem in sistema.Tiempos)
                lstTiempos.Items.Add(tiem.ToString());

        }
        private void limpiarCajas() 
            {
                txtDias.Text="";
                txtPrecio.Text = "";
            }                 
        #endregion

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            try
            {
                lblError.Text = "";               
                sistema.modificarTiempoEntrega(txtDias.Text, txtPrecio.Text);
                limpiarCajas();
                actualizarListaTiempos();
                btnActualizar.Visible = false;
                btnCrear.Visible = true;
                txtDias.ReadOnly = false;
                btnCancelar.Visible = false;
            }
            catch (Exception ex)
            {
                lblError.Text = ex.Message;
            }

        }

        private void FormTiemposEntrega_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }       
        
    }
}
